Modern processors can implement many different types of mathematical operations responsive to user-level instructions of a given instruction set architecture (ISA). Common operations include typical arithmetic operations such as additions, subtractions, and so forth. Furthermore, some processor ISAs provide user-level instructions for additional functions such as reciprocals and square root reciprocals. As examples, some processors implement a reciprocal operation with a user-level instruction called RCP and a square root reciprocal operation with a user-level instruction called RSQRT. These instructions, which respectively deliver reciprocal and square-root-reciprocal approximations, use a lookup table.
However, these existing RCP and RSQRT instructions have a relative error on the order of 2−11 for most cases. In addition these instructions do not provide correct results for very small numbers or so-called denormal values. As a result of these limitations, users can choose to not use these instructions, or to provide software overhead for resolving these cases. For example, for denormal operands a secondary path may be used to handle these operations. And for obtaining a greater accuracy than available by the user-level instruction, additional overhead is consumed in a main path by performing additional iterations of a given algorithm.